package RecursiveSearcher;

/**
 * @ClassName LC50
 * @Description 快速幂
 * @Author ZJX
 * @Date 2024/9/11 20:59
 * @Version 1.0
 */
public class LC50 {
    public double myPow(double x, int n) {
        if (n == 0){
            return 1.00;
        }

        if (n < 0){
            return 1.0 / myPow(x, -n);
        }

        double v = myPow(x, n / 2);

        if (n % 2 == 0) {
            return v * v;  // 如果 n 是偶数，返回 v 的平方
        } else {
            return v * v * x;  // 如果 n 是奇数，额外乘以 x
        }
    }
}
